home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / mus / play / multiplsr.lha / ntpackplay.asm < prev    next >
Assembly Source File  |  1992-09-14  |  12KB  |  676 lines

  1. * MultiPlayer
  2. * Copyright (C) 1992 Bryan Ford
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software
  16. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17. *
  18. * I (the author of MultiPlayer) can be contacted on the Internet at
  19. * "bryan.ford@m.cc.utah.edu".  See "Player.doc" for other addresses.
  20. *
  21. * Note:  This playroutine was not originally written by me.  In general
  22. * these playroutines are public domain, so I am bringing the versions
  23. * modified for MultiPlayer under the General Public License.  In the
  24. * few cases of already-copyrighted playroutines, the above copyright
  25. * notice applies only to the parts of the file written by me.
  26. *
  27. * $Id: ntpackplay.asm,v 4.1 92/06/21 11:14:05 BAF Exp Locker: BAF $
  28. *
  29.  
  30.     include "player.i"
  31.  
  32.     xref    modmem
  33.     xref    getfreqmodspeed,dmawait
  34.  
  35.     xdef    ntpackstart
  36.  
  37.     code    text
  38.  
  39. ntpackstart
  40.     plstartret 9$
  41.  
  42.         cnop    0,4
  43.     dc.l    gmod_Hook
  44. 9$    gmodnop
  45.     gmodbra    _pack_init        ; StartMusic
  46.     gmodbra    _pack_end        ; StopMusic
  47.     gmodnop
  48.     gmodnop
  49.     moveq    #1,d0            ; ContinueMusic
  50.     rts
  51.     gmodnop
  52.     gmodnop
  53.     gmodnop
  54.     gmodnop
  55.     gmodnop
  56.     gmodnop
  57.     gmodnop
  58.     gmodnop
  59.     gmodnop
  60.     gmodbra    getfreqmodspeed        ; GetFrequency
  61.     gmodbra    _pack_music        ; TimerTick
  62.     lea    name(pc),a0        ; GetMakerName
  63.     move.l    a0,d0
  64.     rts
  65.  
  66. ;*******************************
  67. ;*** NOISETRACKER COMPRESSED ***
  68. ;*** REPLAYROUTINE 1.3 D     ***
  69. ;*** IMPROVED ON 15/03/91    ***
  70. ;*** BY ANTICHRIST OF UFO    ***
  71. ;*******************************
  72.  
  73. ; This routine is fully pc-relative.
  74. ; Don't change anything in mt_vars
  75. ; ('coz the offsets below won't fit anymore!).
  76.  
  77. ; Include your PACKED module at mt_data (still the same!)
  78. ; To init, jump to Offset 0
  79. ; »» Load your start position to d0.l ««
  80. ; To play, jump to Offset 4
  81. ; To stop, jump to Offset 8
  82.  
  83. mt_speed    equ 0
  84. mt_songpos    equ 1
  85. mt_pattpos    equ 2
  86. mt_counter    equ 4
  87. mt_break    equ 5
  88. mt_dmacon    equ 6
  89. mt_samplestarts equ 8
  90. mt_voice1    equ 132
  91. mt_voice2    equ 166
  92. mt_voice3    equ 200
  93. mt_voice4    equ 234
  94.  
  95. _pack_init:
  96. ; !!!!
  97.     movem.l    d0-d7/a0-a6,-(a7)
  98. ; !!!!
  99.     move.l    d0,-(sp)
  100.     lea    mt_vars(pc),a4
  101.     move.l    modmem,a0
  102.     move.l    a0,a1
  103.     lea    $176(a1),a1
  104.     moveq    #$7f,d0
  105.     moveq    #0,d1
  106.     moveq    #0,d2
  107.  
  108. .seek    move.b    (a1)+,d1
  109.     cmp.b    d1,d2
  110.     bge.s    .nohi
  111.     move.b    d1,d2
  112. .nohi    dbf    d0,.seek
  113.  
  114.     move.l    modmem,(a0)
  115.     lea    $1f6(a0),a0
  116.     lea    mt_patterns(pc),a1
  117.     move.w    #$5041,d0
  118.     move.w    #$5454,d1
  119. .getPatt
  120.     cmp.w    (a0)+,d0
  121.     bne.s    .getPatt
  122.     cmp.w    (a0)+,d1
  123.     bne.s    .getPatt
  124.     move.l    a0,(a1)+
  125.     dbf    d2,.getPatt
  126.  
  127.     lea    mt_samplestarts(a4),a1
  128.     move.l    modmem,a2
  129.     move.l    a2,d2
  130.     moveq    #31-1,d1
  131. mt_lop3:
  132.     move.l    (a2),d0
  133.     add.l    d2,d0
  134.     move.l    d0,(a1)+
  135.     lea    12(a2),a2
  136.     dbf    d1,mt_lop3
  137.  
  138.     move.l    (sp)+,d0
  139.     moveq    #0,d0            ;insert this line, if you don't
  140.     bsr    setChannel        ;want to start your song at any
  141.                     ;other position than 0
  142.     move.b    #6,mt_speed(a4)
  143.     clr.w    $dff0a8
  144.     clr.w    $dff0b8
  145.     clr.w    $dff0c8
  146.     clr.w    $dff0d8
  147.     clr.b    mt_counter(a4)
  148.     clr.w    mt_pattpos(a4)
  149.  
  150. ; !!!!
  151.     movem.l    (a7)+,d0-d7/a0-a6
  152. ; !!!!
  153.     rts
  154.  
  155. _pack_end:
  156.     clr.w    $dff0a8
  157.     clr.w    $dff0b8
  158.     clr.w    $dff0c8
  159.     clr.w    $dff0d8
  160.     move.w    #$f,$dff096
  161.     rts
  162. _pack_music:
  163. ; !!!!
  164.     movem.l    d0-d7/a0-a6,-(a7)
  165. ; !!!!
  166.     bsr    mt_music
  167. ; !!!!
  168.     movem.l    (a7)+,d0-d7/a0-a6
  169. ; !!!!
  170.     rts
  171.  
  172. mt_music:
  173.     lea    mt_vars(pc),a4
  174.     addq.b    #1,mt_counter(a4)
  175.     move.b    mt_counter(a4),D0
  176.     cmp.b    mt_speed(a4),D0
  177.     blt.s    mt_nonew
  178.     clr.b    mt_counter(a4)
  179.     bra    mt_getnew
  180.  
  181. mt_nonew:
  182.     lea    mt_voice1(a4),a6
  183.     lea    $dff0a0,a5
  184.     bsr    mt_checkcom
  185.     lea    mt_voice2(a4),a6
  186.     lea    $10(a5),a5
  187.     bsr    mt_checkcom
  188.     lea    mt_voice3(a4),a6
  189.     lea    $10(a5),a5
  190.     bsr    mt_checkcom
  191.     lea    mt_voice4(a4),a6
  192.     lea    $10(a5),a5
  193.     bsr    mt_checkcom
  194.     bra    mt_endr
  195.  
  196. mt_arpeggio:
  197.     moveq    #0,d0
  198.     move.b    mt_counter(a4),d0
  199.     divs    #3,d0
  200.     swap    d0
  201.     cmp.w    #0,d0
  202.     beq.s    mt_arp2
  203.     cmp.w    #2,d0
  204.     beq.s    mt_arp1
  205.  
  206.     moveq    #0,d0
  207.     move.b    3(a6),d0
  208.     lsr.b    #4,d0
  209.     bra.s    mt_arp3
  210. mt_arp1:
  211.     moveq    #0,d0
  212.     move.b    $3(a6),d0
  213.     and.b    #$f,d0
  214.     bra.s    mt_arp3
  215. mt_arp2:
  216.     move.w    $10(a6),d2
  217.     bra.s    mt_arp4
  218. mt_arp3:
  219.     asl.w    #1,d0
  220.     moveq    #0,d1
  221.     move.w    $10(a6),d1
  222.     lea    mt_periods(pc),a0
  223.     moveq    #$24,d7
  224. mt_arploop:
  225.     move.w    0(a0,d0.w),d2
  226.     cmp.w    (a0),d1
  227.     bge.s    mt_arp4
  228.     addq.l    #2,a0
  229.     dbf    d7,mt_arploop
  230.     rts
  231. mt_arp4: move.w    d2,$6(a5)
  232.     rts
  233.  
  234. mt_getnew:
  235.     move.l    modmem,a3
  236.     clr.w    mt_dmacon(a4)
  237.     lea    $dff0a0,a5
  238.     lea    mt_voice1(a4),a6
  239.     bsr.s    mt_playvoice
  240.     lea    $10(a5),a5
  241.     lea    mt_voice2(a4),a6
  242.     bsr.s    mt_playvoice
  243.     lea    $10(a5),a5
  244.     lea    mt_voice3(a4),a6
  245.     bsr.s    mt_playvoice
  246.     lea    $10(a5),a5
  247.     lea    mt_voice4(a4),a6
  248.     bsr.s    mt_playvoice
  249.     bra    mt_setdma
  250.  
  251. mt_playvoice:
  252.     tst.w    32(a6)
  253.     beq.s    .nodelay
  254.     subq.w    #1,32(a6)
  255.     bra.s    .morevoice
  256. .nodelay
  257.     move.l    28(a6),a0
  258.     moveq    #0,d2
  259.     move.b    (a0),d2
  260.     cmpi.b    #$ff,d2
  261.     bne.s    .nocrunch
  262.     move.b    1(a0),33(a6)
  263.     addq.l    #2,28(a6)
  264.     clr.l    (a6)
  265.     bra.s    mt_playvoice
  266. .nocrunch
  267.     move.b    d2,d0
  268.     andi.b    #$3f,d2
  269.     beq.s    .noset
  270.     lsl.w    #1,d2
  271.     lea    mt_periods(pc),a1
  272.     move.w    -2(a1,d2.w),d2
  273. .noset    btst    #7,d0
  274.     beq.s    .nohisamp
  275.     bset    #12,d2
  276. .nohisamp
  277.     move.w    d2,(a6)
  278.     move.b    1(a0),2(a6)
  279.     clr.b    3(a6)
  280.     btst    #6,d0
  281.     bne.s    .nocom
  282.     move.b    2(a0),3(a6)
  283.     addq.l    #1,28(a6)
  284. .nocom    addq.l    #2,28(a6)
  285. .morevoice
  286.     moveq    #0,d2
  287.     move.b    2(a6),d2
  288.     and.b    #$f0,d2
  289.     lsr.b    #4,d2
  290.     move.b    (a6),d0
  291.     and.b    #$f0,d0
  292.     or.b    d0,d2
  293.     tst.b    d2
  294.     beq.s    mt_setregs
  295.     lea    mt_samplestarts(a4),a1
  296.     subq.l    #1,d2
  297.     move.l    d2,d4
  298.     mulu    #12,d4
  299.     asl.l    #2,d2
  300.     move.l    0(a1,d2.l),4(a6)
  301.     move.w    4(a3,d4.l),8(a6)
  302.     move.w    6(a3,d4.l),18(a6)
  303.     moveq    #0,d3
  304.     move.w    8(a3,d4.l),d3
  305.     tst.w    d3
  306.     beq.s    mt_noloop
  307.     move.l    4(a6),d2
  308.     lsl.l    #1,d3
  309.     add.l    d3,d2
  310.     move.l    d2,$a(a6)
  311.     move.w    8(a3,d4.l),d0
  312.     add.w    10(a3,d4.l),d0
  313.     move.w    d0,8(a6)
  314.     move.w    10(a3,d4.l),$e(a6)
  315.     move.w    $12(a6),$8(a5)
  316.     bra.s    mt_setregs
  317. mt_noloop:
  318.     move.l    4(a6),d2
  319.     add.l    d3,d2
  320.     move.l    d2,10(a6)
  321.     move.w    10(a3,d4.l),14(a6)
  322.     move.w    18(a6),8(a5)
  323. mt_setregs:
  324.     move.w    (a6),d0
  325.     andi.w    #$fff,d0
  326.     beq    mt_checkcom2
  327.     move.b    2(a6),d0
  328.     and.b    #$F,d0
  329.     cmp.b    #$3,d0
  330.     bne.s    mt_setperiod
  331.     bsr    mt_setmyport
  332.     bra    mt_checkcom2
  333.  
  334. mt_setperiod:
  335.     move.w    (a6),$10(a6)
  336.     and.w    #$fff,$10(a6)
  337.     move.w    $14(a6),d0
  338.     move.w    d0,$dff096
  339.     clr.b    $1b(a6)
  340.  
  341.     move.l    4(a6),(a5)
  342.     move.w    8(a6),4(a5)
  343.     move.w    $10(a6),d0
  344.     and.w    #$fff,d0
  345.     move.w    d0,$6(a5)
  346.     move.w    20(a6),d0
  347.     or.w    d0,mt_dmacon(a4)
  348.     bra    mt_checkcom2
  349.  
  350. mt_setdma:
  351.         jsr     dmawait
  352.     move.w    mt_dmacon(a4),d0
  353.     or.w    #$8000,d0
  354.     move.w    d0,$dff096
  355.         jsr     dmawait
  356.  
  357.     lea    $dff000,a5
  358.     lea    mt_voice4(a4),a6
  359.     move.l    $a(a6),$d0(a5)
  360.     move.w    $e(a6),$d4(a5)
  361.     lea    mt_voice3(a4),a6
  362.     move.l    $a(a6),$c0(a5)
  363.     move.w    $e(a6),$c4(a5)
  364.     lea    mt_voice2(a4),a6
  365.     move.l    $a(a6),$b0(a5)
  366.     move.w    $e(a6),$b4(a5)
  367.     lea    mt_voice1(a4),a6
  368.     move.l    $a(a6),$a0(a5)
  369.     move.w    $e(a6),$a4(a5)
  370.     addq.b    #1,mt_pattpos+1(a4)
  371.     cmpi.b    #64,mt_pattpos+1(a4)
  372.     bne.s    mt_endr
  373. mt_nex:    clr.b    mt_pattpos+1(a4)
  374.     clr.b    mt_break(a4)
  375.     addq.b    #1,mt_songpos(a4)
  376.     andi.b    #$7f,mt_songpos(a4)
  377.     move.l    a0,-(a7)
  378.     move.l    modmem,a0
  379.     move.b    mt_songpos(a4),d1
  380.     cmp.b    $174(a0),d1
  381.     bne.s    .not
  382.     move.b    $175(a0),mt_songpos(a4)
  383. .not    moveq    #0,d0
  384.     movem.l    (a7)+,a0
  385.     move.b    mt_songpos(a4),d0
  386.     bsr    setChannel
  387. mt_endr:
  388.     tst.b    mt_break(a4)
  389.     bne.s    mt_nex
  390.     rts
  391.  
  392. mt_setmyport:
  393.     move.w    (a6),d2
  394.     and.w    #$fff,d2
  395.     move.w    d2,$18(a6)
  396.     move.w    $10(a6),d0
  397.     clr.b    $16(a6)
  398.     cmp.w    d0,d2
  399.     beq.s    mt_clrport
  400.     bge.s    mt_rt
  401.     move.b    #$1,$16(a6)
  402.     rts
  403. mt_clrport:
  404.     clr.w    $18(a6)
  405. mt_rt:    rts
  406.  
  407. mt_myport:
  408.     move.b    3(a6),d0
  409.     beq.s    mt_myslide
  410.     move.b    d0,$17(a6)
  411.     clr.b    3(a6)
  412. mt_myslide:
  413.     tst.w    $18(a6)
  414.     beq.s    mt_rt
  415.     moveq    #0,d0
  416.     move.b    $17(a6),d0
  417.     tst.b    $16(a6)
  418.     bne.s    mt_mysub
  419.     add.w    d0,$10(a6)
  420.     move.w    $18(a6),d0
  421.     cmp.w    $10(a6),d0
  422.     bgt.s    mt_myok
  423.     move.w    $18(a6),$10(a6)
  424.     clr.w    $18(a6)
  425. mt_myok: move.w    $10(a6),$6(a5)
  426.     rts
  427. mt_mysub:
  428.     sub.w    d0,$10(a6)
  429.     move.w    $18(a6),d0
  430.     cmp.w    $10(a6),d0
  431.     blt.s    mt_myok
  432.     move.w    $18(a6),$10(a6)
  433.     clr.w    $18(a6)
  434.     move.w    $10(a6),$6(a5)
  435.     rts
  436.  
  437. mt_vib:    move.b    3(a6),d0
  438.     beq.s    mt_vi
  439.     move.b    d0,$1a(a6)
  440.  
  441. mt_vi:    move.b    $1b(a6),d0
  442.     lea    mt_sin(pc),a4
  443.     lsr.w    #$2,d0
  444.     and.w    #$1f,d0
  445.     moveq    #0,d2
  446.     move.b    0(a4,d0.w),d2
  447.     move.b    $1a(a6),d0
  448.     and.w    #$f,d0
  449.     mulu    d0,d2
  450.     lsr.w    #$6,d2
  451.     move.w    $10(a6),d0
  452.     tst.b    $1b(a6)
  453.     bmi.s    mt_vibmin
  454.     add.w    d2,d0
  455.     bra.s    mt_vib2
  456. mt_vibmin:
  457.     sub.w    d2,d0
  458. mt_vib2: move.w    d0,$6(a5)
  459.     move.b    $1a(a6),d0
  460.     lsr.w    #$2,d0
  461.     and.w    #$3c,d0
  462.     add.b    d0,$1b(a6)
  463.     lea    mt_vars(pc),a4
  464.     rts
  465.  
  466. mt_nop:    move.w    $10(a6),$6(a5)
  467.     rts
  468.  
  469. mt_checkcom:
  470.     move.w    2(a6),d0
  471.     and.w    #$fff,d0
  472.     beq.s    mt_nop
  473.     move.b    2(a6),d0
  474.     and.b    #$f,d0
  475.     tst.b    d0
  476.     beq    mt_arpeggio
  477.     cmp.b    #$1,d0
  478.     beq.s    mt_portup
  479.     cmp.b    #$2,d0
  480.     beq    mt_portdown
  481.     cmp.b    #$3,d0
  482.     beq    mt_myport
  483.     cmp.b    #$4,d0
  484.     beq    mt_vib
  485.     move.w    $10(a6),$6(a5)
  486.     cmp.b    #$a,d0
  487.     beq.s    mt_volslide
  488.     rts
  489.  
  490. mt_volslide:
  491.     moveq    #0,d0
  492.     move.b    $3(a6),d0
  493.     lsr.b    #4,d0
  494.     tst.b    d0
  495.     beq.s    mt_voldown
  496.     add.w    d0,$12(a6)
  497.     cmp.w    #$40,$12(a6)
  498.     bmi.s    mt_vol2
  499.     move.w    #$40,$12(a6)
  500. mt_vol2: move.w    $12(a6),$8(a5)
  501.     rts
  502.  
  503. mt_voldown:
  504.     moveq    #0,d0
  505.     move.b    $3(a6),d0
  506.     and.b    #$f,d0
  507.     sub.w    d0,$12(a6)
  508.     bpl.s    mt_vol3
  509.     clr.w    $12(a6)
  510. mt_vol3: move.w    $12(a6),$8(a5)
  511.     rts
  512.  
  513. mt_portup:
  514.     moveq    #0,d0
  515.     move.b    3(a6),d0
  516.     sub.w    d0,$10(a6)
  517.     move.w    $10(a6),d0
  518.     and.w    #$fff,d0
  519.     cmp.w    #$71,d0
  520.     bpl.s    mt_por2
  521.     and.w    #$f000,$10(a6)
  522.     or.w    #$71,$10(a6)
  523. mt_por2: move.w    $10(a6),d0
  524.     and.w    #$fff,d0
  525.     move.w    d0,$6(a5)
  526.     rts
  527.  
  528. mt_portdown:
  529.     clr.w    d0
  530.     move.b    $3(a6),d0
  531.     add.w    d0,$10(a6)
  532.     move.w    $10(a6),d0
  533.     and.w    #$fff,d0
  534.     cmp.w    #$358,d0
  535.     bmi.s    mt_por3
  536.     and.w    #$f000,$10(a6)
  537.     or.w    #$358,$10(a6)
  538. mt_por3: move.w    $10(a6),d0
  539.     and.w    #$fff,d0
  540.     move.w    d0,$6(a5)
  541.     rts
  542.  
  543. mt_checkcom2:
  544.     move.b    2(a6),d0
  545.     and.b    #$f,d0
  546.     cmp.b    #$e,d0
  547.     beq.s    mt_setfilt
  548.     cmp.b    #$d,d0
  549.     beq.s    mt_pattbreak
  550.     cmp.b    #$b,d0
  551.     beq.s    mt_posjmp
  552.     cmp.b    #$c,d0
  553.     beq.s    mt_setvol
  554.     cmp.b    #$f,d0
  555.     beq.s    mt_setspeed
  556.     rts
  557.  
  558. mt_setfilt:
  559.     move.b    $3(a6),d0
  560.     and.b    #$1,d0
  561.     asl.b    #$1,d0
  562.     and.b    #$fd,$bfe001
  563.     or.b    d0,$bfe001
  564.     rts
  565. mt_posjmp:
  566.     move.b    3(a6),d0
  567.     subq.b    #1,d0
  568.     move.b    d0,mt_songpos(a4)
  569. mt_pattbreak:
  570.     not.b    mt_break(a4)
  571.     rts
  572. mt_setvol:
  573.     cmp.b    #$40,$3(a6)
  574.     ble.s    mt_vol4
  575.     move.b    #$40,$3(a6)
  576. mt_vol4:
  577.     move.b    $3(a6),$8(a5)
  578.     rts
  579.  
  580. mt_setspeed:
  581.     cmp.b    #$1f,$3(a6)
  582.     ble.s    mt_sets
  583.     move.b    #$1f,$3(a6)
  584. mt_sets:
  585.     move.b    $3(a6),d0
  586.     beq.s    mt_rts2
  587.     move.b    d0,mt_speed(a4)
  588.     clr.b    mt_counter(a4)
  589. mt_rts2:
  590.     rts
  591.  
  592. setChannel:
  593.     move.l    modmem,a0
  594.     lea    mt_vars(pc),a4
  595.     cmp.b    $174(a0),d0
  596.     blt.s    .valid
  597.     moveq    #0,d0
  598. .valid    move.b    d0,mt_songpos(a4)
  599.     lea    $176(a0),a0
  600.     move.b    0(a0,d0.w),d0
  601.     lsl.l    #2,d0
  602.     lea    mt_voice1(a4),a1
  603.     lea    mt_patterns(pc),a0
  604.     move.l    0(a0,d0.w),a0
  605.     move.l    a0,d2
  606.     move.l    d2,d0
  607.     addq.l    #6,d0
  608.     moveq    #3,d1
  609.     bra.s    .dochan
  610. .setchannel
  611.     lea    34(a1),a1
  612.     moveq    #0,d0
  613.     move.w    (a0)+,d0
  614.     add.l    d2,d0
  615. .dochan
  616.     move.l    d0,28(a1)
  617.     clr.w    32(a1)
  618.     dbf    d1,.setchannel
  619.     rts
  620.  
  621. mt_sin:
  622.  DC.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
  623.  DC.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18
  624.  
  625. mt_periods:
  626.  DC.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
  627.  DC.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
  628.  DC.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
  629.  DC.w $007f,$0078,$0071
  630.  
  631. mt_patterns:
  632.     ds.l    64
  633. mt_vars:            ;*** DON'T CHANGE ANYTHING BELOW ***
  634.     DC.b    6
  635.     DC.b    0
  636.     DC.w    0
  637.     DC.b    0
  638.     DC.b    0
  639.     DC.w    0
  640. ;mt_samplestarts
  641.     ds.L    $1f
  642.  
  643. ;mt_voice1
  644.     ds.w    10
  645.     DC.w    1
  646.     ds.w    3
  647.     dc.l    0
  648.     dc.w    0
  649.  
  650. ;mt_voice2
  651.     ds.w    10
  652.     DC.w    2
  653.     ds.w    3
  654.     dc.l    0
  655.     dc.w    0
  656.  
  657. ;mt_voice3
  658.     ds.w    10
  659.     DC.w    4
  660.     ds.w    3
  661.     dc.l    0
  662.     dc.w    0
  663.  
  664. ;mt_voice4
  665.     ds.w    10
  666.     DC.w    8
  667.     ds.w    3
  668.     dc.l    0
  669.     dc.w    0
  670.  
  671. ;atdp Coke's Touchdown !
  672.  
  673. name    dc.b    "NoiseTracker Packed",0
  674.  
  675.     end
  676.